﻿
function ConfirmarSalida() {
    if (!confirm('¿Se perderán los cambios, está seguro de Salir?')) {
        return false;
    }

    return true;
}

function valGuardarControlVacio(pControl, pForm, pTexto) {
    if (vacio(document.getElementById(pControl).value) == false) {
        showPopupInformar(2, pForm, pTexto, pControl);
        return false;
    }
    if (!confirm('¿Desea Ud. guardar la información?')) {
        return false;
    }

    return true;
}

function changeToUpperCase(controlName) {
    document.getElementById(controlName).value = document.getElementById(controlName).value.toUpperCase();
}

function cerrar() {
    window.close();
}

function SoloNumeros() {
    var tecla = window.event.keyCode;
    if ((tecla < 48 || tecla > 57) && tecla != 46) {
        window.event.keyCode = 0;
    }
}

function Confirmar(pMensaje) {
    if (!confirm(pMensaje)) {
        return false;
    }
    return true;
}

function sololetras() {
    var tecla = window.event.keyCode;

    //if((tecla >=65 && tecla <=90) || (tecla >=97 && tecla <=122) ||(tecla==32 || tecla==45 || tecla==34 || tecla==40 || tecla==41))
    if ((tecla < 32) || (tecla > 32 && tecla < 40) || (tecla > 41 && tecla < 44) || (tecla > 45 && tecla < 59) || (tecla > 59 && tecla < 65) || (tecla > 90 && tecla < 97) || (tecla > 122 && tecla < 124) || (tecla > 124 && tecla < 129) || (tecla > 130 && tecla < 149) || (tecla > 149 && tecla < 160) || (tecla > 161 && tecla < 163) || (tecla > 165)) {
        //window.event.returnValue=true;
        window.event.returnValue = false;
    }
    else {
        //window.event.returnValue=false;
        window.event.returnValue = true;
    }

}

function SololetrasyNumeros() {
    var tecla = window.event.keyCode;
    if ((tecla < 32) || (tecla > 32 && tecla < 40) || (tecla > 41 && tecla < 44) || (tecla > 45 && tecla < 48) || (tecla > 57 && tecla < 59) || (tecla > 59 && tecla < 65) || (tecla > 90 && tecla < 97) || (tecla > 122 && tecla < 124) || (tecla > 124 && tecla < 129) || (tecla > 130 && tecla < 149) || (tecla > 149 && tecla < 160) || (tecla > 161 && tecla < 163) || (tecla > 165)) {
        window.event.keyCode = 0;
    }
}

function SoloEnteros() {
    var tecla = window.event.keyCode;
    if (tecla < 48 || tecla > 57) {
        window.event.keyCode = 0;
    }
}

function Resaltar_On(GridView) {
    if (GridView != null) {
        GridView.originalBgColor = GridView.style.backgroundColor;
        GridView.style.backgroundColor = "IndianRed";
    }
}

function vacio(q) {

    for (i = 0; i < q.length; i++) {

        if (q.charAt(i) != " ") {
            return true
        }
    }
    return false
}

// VALIDACION PARA FORMATO NUMERICO
function esDigito(sChr) {
    var sCod = sChr.charCodeAt(0);
    return ((sCod > 47) && (sCod < 58));
}

function validarNum(e, element, _float) {
    var charCode = (document.all) ? e.keyCode : e.which;

    if (charCode == 8 || charCode == 13 || (_float ? (element.value.indexOf('.') == -1 ? charCode == 46 : false) : false))
        return true;
    else if ((charCode < 48) || (charCode > 57))
        return false;
    return true;
}

function FormatoDecimal(element, e) {
    var ind = 0;
    var dec = '';
    var len = element.value.length;

    if (validarNum(e, element, true)) {
        S = element.value
        OK = /^[0-9]*\.?[0-9]{0,2}$/.test(S)
        if (OK == false) {
            window.event.keyCode = 0;
        }
    }
    else
        window.event.keyCode = 0;
}

function validarDecimal(numero) {
    if (!/^([0-9])*[.]?[0-9]*$/.test(numero)) {
        return false;
    }
    return true;
}

function valGuardarControlVacio(pControl, pForm, pTexto) {
    if (vacio(document.getElementById(pControl).value) == false) {
        showPopupInformar(2, pForm, pTexto, pControl);
        return false;
    }
}

// VALIDAR EMAIL
function validarEmail(email) {
    var valor = document.getElementById(email).value
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    if (reg.test(valor) == true) {
        return true;
    }
    else {
        showPopupInformar(2, 'Validación Email', 'La dirección de Correo Electrónico no es válida...', '');
        document.getElementById(email).focus();
        return false;
    }
}

// NUMERO MAXIMO DE CARATERES
function Count(text, numero) {
    var maxlength = new Number(numero); // Change number to your max length.
    if (document.getElementById(text.id).value.length > maxlength) {
        text.value = text.value.substring(0, maxlength);
    }
}

// VALIDACION DE FECHAS
function CompararFechas(fecha, fecha2) {

    if ((fecha.length > 0) && (fecha2.length == 0)) {
        return (false);
    }

    var xMonth = fecha.substring(3, 5);
    var xDay = fecha.substring(0, 2);
    var xYear = fecha.substring(6, 10);
    var yMonth = fecha2.substring(3, 5);
    var yDay = fecha2.substring(0, 2);
    var yYear = fecha2.substring(6, 10);

    if (xYear > yYear) {
        return (true);
    }
    else {
        if (xYear == yYear) {
            if (xMonth > yMonth) {
                return (true);
            }
            else {
                if (xMonth == yMonth) {
                    if (xDay >= yDay) {
                        return (true);
                    } else {
                        return (false);
                    }
                } else {
                    return (false);
                }
            }
        } else {
            return (false);
        }
    }
}

function valSep(oTxt) {
    var bOk = false;
    bOk = bOk || ((oTxt.charAt(2) == "-") && (oTxt.charAt(5) == "-"));
    bOk = bOk || ((oTxt.charAt(2) == "/") && (oTxt.charAt(5) == "/"));
    return bOk;
}

function finMes(oTxt) {
    var nMes = parseInt(oTxt.substr(3, 2), 10);
    var nRes = 0;
    switch (nMes) {
        case 1: nRes = 31; break;
        case 2:
            var nAno = oTxt.substr(6);
            if (esBisiesto(nAno) == true) {
                nRes = 29;
            }
            else {
                nRes = 28;
            }
            break;
        case 3: nRes = 31; break;
        case 4: nRes = 30; break;
        case 5: nRes = 31; break;
        case 6: nRes = 30; break;
        case 7: nRes = 31; break;
        case 8: nRes = 31; break;
        case 9: nRes = 30; break;
        case 10: nRes = 31; break;
        case 11: nRes = 30; break;
        case 12: nRes = 31; break;
    }
    return nRes;
}

function valDia(oTxt) {
    var bOk = false;
    if (oTxt.substr(0, 2) == '__') {
        return true;
    }
    var nDia = parseInt(oTxt.substr(0, 2), 10);
    bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));
    return bOk;
}

function valMes(oTxt) {
    var bOk = false;
    if (oTxt.substr(3, 2) == '__') {
        return true;
    }
    var nMes = parseInt(oTxt.substr(3, 2), 10);
    bOk = bOk || ((nMes >= 1) && (nMes <= 12));
    return bOk;
}

function valAno(oTxt) {
    var bOk = true;
    if (oTxt.substr(6) == '____') {
        return true;
    }
    var nAno = oTxt.substr(6);
    bOk = bOk && ((nAno.length == 2) || (nAno.length == 4));
    if (bOk) {
        for (var i = 0; i < nAno.length; i++) {
            bOk = bOk && esDigito(nAno.charAt(i));
        }
    }
    return bOk;
}

function valFecha(oTxt) {
    var bOk = true;
    if (oTxt != "") {
        bOk = bOk && (valAno(oTxt));
        bOk = bOk && (valMes(oTxt));
        bOk = bOk && (valDia(oTxt));
        bOk = bOk && (valSep(oTxt));
        if (!bOk) {
            return false;
        }
        else {
            return true;
        }
    }
}

function esBisiesto(anio) {
    var BISIESTO;
    if (parseInt(anio) % 4 == 0) {
        if (parseInt(anio) % 100 == 0) {
            if (parseInt(anio) % 400 == 0) {
                BISIESTO = true;
            }
            else {
                BISIESTO = false;
            }
        }
        else {
            BISIESTO = true;
        }
    }
    else
        BISIESTO = false;

    return BISIESTO;
}

function FechaValida(pControl, pForm, Msg) {
    if (valFecha(document.getElementById(pControl).value) == false) {
        document.getElementById(pControl).focus();
        document.getElementById(pControl).value = '';
        showPopupInformar(2, pForm, Msg, '');
        return false;
    }
}

function SoloCaracterFecha() {
    var tecla = window.event.keyCode;
    if ((tecla < 48 || tecla > 57) && tecla != 47) {
        window.event.returnValue = false;
    }
}

function ValidarCombo(pControl, pForm, Msg) {
    if (document.getElementById(pControl).selectedIndex == 0) {
        showPopupInformar(2, pForm, Msg, pControl);
        return false;
    }
}

function ValidarDato(pControl, pForm, Msg) {
    if (document.getElementById(pControl).value == '') {
        showPopupInformar(2, pForm, Msg, '');
        return false;
    }
}

function extractNumber(obj, decimalPlaces, allowNegative) {
    var temp = obj.value;

    // avoid changing things if already formatted correctly
    var reg0Str = '[0-9]*';
    if (decimalPlaces > 0) {
        reg0Str += '\\.?[0-9]{0,' + decimalPlaces + '}';
    } else if (decimalPlaces < 0) {
        reg0Str += '\\.?[0-9]*';
    }
    reg0Str = allowNegative ? '^-?' + reg0Str : '^' + reg0Str;
    reg0Str = reg0Str + '$';
    var reg0 = new RegExp(reg0Str);
    if (reg0.test(temp)) return true;

    // first replace all non numbers
    var reg1Str = '[^0-9' + (decimalPlaces != 0 ? '.' : '') + (allowNegative ? '-' : '') + ']';
    var reg1 = new RegExp(reg1Str, 'g');
    temp = temp.replace(reg1, '');

    if (decimalPlaces != 0) {
        var reg3 = /\./g;
        var reg3Array = reg3.exec(temp);
        if (reg3Array != null) {
            // keep only first occurrence of .
            //  and the number of places specified by decimalPlaces or the entire string if decimalPlaces < 0
            var reg3Right = temp.substring(reg3Array.index + reg3Array[0].length);
            reg3Right = reg3Right.replace(reg3, '');
            reg3Right = decimalPlaces > 0 ? reg3Right.substring(0, decimalPlaces) : reg3Right;
            temp = temp.substring(0, reg3Array.index) + '.' + reg3Right;
        }
    }

    obj.value = temp;
}


